package com.ruoyi.system.service;

import com.ruoyi.system.domain.vo.PointsConfigVo;
import com.ruoyi.system.domain.vo.UserPointsListVo;
import com.ruoyi.system.dto.PointsConfigDTO;
import com.ruoyi.system.dto.PointsConfigInfoDTO;
import com.ruoyi.system.dto.UserPointsDTO;
import com.ruoyi.system.dto.UserPointsLogDTO;

import java.util.List;

public interface IPointService {
    /**
     * 查询积分配置列表
     * @param name
     * @return
     */
    List<PointsConfigDTO> getList(String name);

    /**
     * 新增或修改积分配置
     * @param pointsConfigVo
     * @return
     */
    Boolean addOrUpdate(PointsConfigVo pointsConfigVo);

    /**
     * 统计积分配置列表总数
     * @param name
     * @return
     */
    int countList(String name);

    /**
     * 获取积分配置详情
     * @param id
     * @return
     */
    PointsConfigInfoDTO getInfo(Long id);

    /**
     * 获取用户积分日志列表
     * @param userPointsListVo
     * @return
     */
    List<UserPointsLogDTO> getUserPointsLogList(UserPointsListVo userPointsListVo);
    /**
     * 统计用户积分日志总数
     * @param userPointsListVo
     * @return
     */
    int getUserPointsLogCount(UserPointsListVo userPointsListVo);

    /**
     * 获取用户积分列表
     * @param userPointsListVo
     * @return
     */
    List<UserPointsDTO> getUserPointsList(UserPointsListVo userPointsListVo);

    /**
     * 统计用户积分总数
     * @param userPointsListVo
     * @return
     */
    int getUserPointsCount(UserPointsListVo userPointsListVo);
}
